#pragma once

const int START_X = 60;
const int START_Y = 150;
const int SQUARE_SIZE = 35;

const int BLOCK_X[4] = {0,1,1,0};
const int BLOCK_Y[4] = {0,0,1,1};

const float LASER_VELOCITY = 120.0f;

const float starsParallaxPeriod = 8.0f;
const float starsParallaxAmplitude = 2048.0f;

const float FADING_TTL = 2.0f;
const float FADE_TTL = 0.3f;

const int ST_DLG_X = 282;
const int ST_DLG_Y = 360;

const int QUIT_DLG_X = 282;
const int QUIT_DLG_Y = 314;

const int END_DLG_X = 282;
const int END_DLG_Y = 314;

const int STARTX = 110;
const int STARTY = 150;

const int MAX_X = 24;
const int MAX_Y = 14;

const float PARTICLE_ANGLES[] = {135.0f,110.0f,70.0f,45.0f,160.0f,110.0f,70.0f,20.0f,200.0f,200.0f,340.0f,340.0f,225.0f,250.0f,290.0f,325.0f};

enum EVENTS {
	EVN_GAME_OVER,
	EVN_START_GAME,
	EVN_ADD_SCORE,
	EVN_RESET_GAME,
	EVN_QUIT_GAME,
	EVN_CONTINUE_GAME,
	EVN_SETTINGS_CHANGED,
	EVN_LEVEL_READY,
	EVN_START_FADING,
	EVN_TIME_ELAPSED,
	EVN_COVERAGE_DONE,
	EVN_LASER_STARTED,
	EVN_LASER_STOPPED
};

struct GameSettings {
	bool coverageMode;
	int coverage;
	bool timerMode;
	int ttl;
	int level;
};

struct Score {
	uint32 points;
	uint32 seconds;
	uint32 coverage;
	uint32 level;
	bool gameOver;
};

const ds::Color LINK_COLOR = ds::Color(0.0f,0.5f,1.0f,1.0f);
const ds::Color SELECTED_LINK_COLOR = ds::Color(1.0f,0.5f,0.0f,1.0f);